iT邦幫忙

2024 iThome 鐵人賽

DAY 3
2
Software Development

我命由我不由語言 java爬蟲挑戰系列 第 3

Java爬蟲挑戰Day 3 - HTTP請求與網頁解析

  • 分享至 

  • xImage
  •  

上一篇提到,網頁爬蟲就是讓爬蟲程式定期幫你Google。

為了更好地理解爬蟲的運作原理,這一篇我們要簡單說明一下網頁背後的工作原理。

HTTP請求

在使用瀏覽器時,其實背後都是透過HTTP協定進行溝通。

常見的HTTP請求方法包括:

  • GET:從伺服器獲取數據,這是最常用的請求方法,例如瀏覽網頁時,瀏覽器向伺服器發送的就是GET請求。
  • POST:向伺服器提交數據,例如在網站上提交表單時通常會使用POST請求。
  • PUT:更新伺服器上的資源。
  • DELETE:刪除伺服器上的資源。

在爬蟲開發中,GET請求最為常見,因為大部分爬蟲需要從網頁中提取數據。

用瀏覽器檢視原始碼

說明前,讓我們直接舉例
iT邦幫忙官網和Chrome瀏覽器為例,我們可以通過「檢視網頁原始碼」來理解網頁結構。
https://ithelp.ithome.com.tw/upload/images/20240820/20168635VjLt3hS8pS.png

例如,如果你想爬取發文者的標題,可以使用以下資訊來定位它:
https://ithelp.ithome.com.tw/upload/images/20240820/20168635MvzvejRPqk.png

只要能看到想要的資訊,後面只要解析格式,就能夠提取資訊了。

另外,在Chrome按下F12。

進入開發者工具後,可以看到網頁的HTTP請求相關資訊。
https://ithelp.ithome.com.tw/upload/images/20240820/20168635dUnx8WB112.png

如上圖,可以看到瀏覽器背後使用了甚麼URL,並且執行的HTTP請求方法為何(圖中為GET)。

動態加載的網頁

有上述的認知,其實已經就可以進行爬蟲程式的開發了。

但現代很多網頁使用JavaScript動態載入數據,這些數據不會直接出現在HTML源碼中,而是透過JavaScript向伺服器請求並插入到網頁中。

591租屋網為例。
我們一樣右鍵,檢視原始碼。
https://ithelp.ithome.com.tw/upload/images/20240820/201686354J307qhnW7.png

當你在網站上搜尋房屋時,即使你在瀏覽器中檢視原始碼,也不會直接看到房屋資訊。
https://ithelp.ithome.com.tw/upload/images/20240820/20168635X2I3JpPHEg.png

因為這些數據是透過動態加載獲取的。

例如,雖然網頁上顯示了1409個房屋資訊,但在原始碼中卻看不到任何相關信息,這就是動態加載導致的現象。

但是即使是動態加載的網頁,爬蟲程式一樣有辦法解決,先靜待後面的更新。

小結

今天,我們探討了HTTP請求的基本概念,了解了如何通過瀏覽器工具來查看網頁結構,並討論了動態加載的特性。

明天預計深入了解591租屋網,以利後面的程式開發。


上一篇
java爬蟲挑戰 Day 2 - 網路爬蟲基本概念
下一篇
java爬蟲挑戰 Day 4 - 591租屋爬蟲 需求分析&系統設計
系列文
我命由我不由語言 java爬蟲挑戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言